// 7.23 同7.22题要求。试基于图的广度优先搜索策略写一算法。
// 此处不输出路径 只能得知是否存在路径
#include <stdio.h>
#include <stdlib.h>
#include "E:\Desktop\data_struct\6Graph\2_Adjacency_Matrix\Adj_Matrix.h"

void fun_7_23(Adj_Matrix G, int i, int j)
{
    int queue[100];
    int visited[100] = {0};
    int rear, front;
    rear = front = 0;
    queue[rear++] = i;
    while (front < rear)
    {
        int p = queue[++front];
        if (p == j)
        {
            printf("YES");
            return;
        }
        int w = 0;
        while (w < G.node_num)
        {
            if (G.M[p][w] == 1 && visited[w] == 0)
            {
                visited[w] = 1;
                queue[++rear] = w;
            }
            w++;
        }
    }
    printf("NO");
}

int main()
{
    /*******************code*******************/
    Adj_Matrix G;
    creat_G(G);
    fun_7_23(G, 1, 4);
    /******************************************/
    printf("\n\n****************************\n");
    printf("Press Enter key to continue\n");
    getchar();
    return 0;
    /******************************************/
}
